#ifndef DMXINTERFACE_H
#define DMXINTERFACE_H

#include <QObject>
#include <QList>

class DmxInterface : public QObject
{
   Q_OBJECT
public:
   explicit DmxInterface(QObject *parent = 0);
   static bool startDmxService(int numberOfChannels);
   static void stopDmxService();
   static bool isDmxServiceStarted() { return m_dllLoaded; }

public:
   static void setValueForChannel( double value, int channel);
   static void setValueForAllChannels( QList<double> values);
   static void turnAllChannelsOff();

private:
   static bool m_dllLoaded;
   static int m_numOfChannels;


private:
   static void applyValues( const double *valueList, int channels);
   static double constrainedValue(double value);
};

#endif // DMXINTERFACE_H
